import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

import com.masc.gurr.model.Contact;
import com.masc.gurr.model.Group;
import com.masc.gurr.model.ProtocolType;


public class ContactTest {

	Contact c;
	
	@Before
	public void setUp() throws Exception {
		c = new Contact(0, ProtocolType.ICQ);
	}

//	@Test
//	public void testGetName() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testSetName() {
//		
//		
//		
//	}
//
//	@Test
//	public void testGetStatusMsg() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testSetStatusMsg() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testGetUin() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testGetType() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testGetStatus() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testSetStatus() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testSetGroupRef() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testGetGroupRef() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testGetUid() {
//		fail("Not yet implemented");
//	}
//
//	@Test
//	public void testSetUid() {
//		fail("Not yet implemented");
//	}
//
	@Test
	public void testSetUin() {
		Group g1 = new Group("/");
		Group g2 = new Group("g2");
		
		g1.addSubGroup(g2);
		g2.addContact(c);
		
		assertFalse(g1.getMap().containsValue(c));
		assertFalse(g1.getMap().containsKey(c.getUid()));
		assertFalse(g2.getMap().containsValue(c));
		assertFalse(g2.getMap().containsKey(c.getUid()));
		
		c.setUin("123");
		
		assertTrue(g1.getMap().containsKey("123"));
		assertTrue(g1.getMap().containsValue(c));
		assertTrue(g2.getMap().containsKey("123"));
		assertTrue(g2.getMap().containsValue(c));
	
	}

}
